public class class2 {
    public static void main(String[] args) {
        // integer division 在除法的两边都是integer，整数除法需要去尾
        System.out.println(5/2);       // 本来的结果是2.5, 但是整数除法需要去尾，最后结果是2
        // java运算的时候，如果两边是不同类型，会先尝试转换成同一个类型。整数被转换成了小数
        System.out.println(5.0/2);     // 结果是2.5

        // remainder 是余数
        System.out.println(5 % 3);     //结果是2
        System.out.println(147 % 10);  //结果是7

        // 数据类型的运算 和数学一样 (先算括号， 再算乘除， 再算加减)
        System.out.println(2 * (3 + 5) - 8);

        // 数据类型转换分两种，第一种是自动转换，可以从小范围int 变成大范围double 。因为所有的int 都可以加个点0变成小数
        double a = 3;  // 定义的是double，3被自动转换成了小数

        /* 这种不可以是错误的，double不能自动变int, 因为小数没法在不损失精确度的情况下变成整数
        int c = 3.2;   */

        // 第二种是主动转换：  （）里面是要转换的数据类型
        double value = (double) 2;  // 2被转换了double，也就是2.0， value存了2.0
        int c = (int) 3.9;   //  3 被转换了int去尾变成了3 ，c存的值是3

        // 运算是从左往右，从上往下，前面的运行结束了才会继续往下。先括号，再乘除， 加减
        double y = (double) (5 / 2); //  先算括号里面的5/2 整数除法是2， 2变成double 最后结果是2.0
        double y1 = (double) 5 / 2;  //  先把5转换成double 就是5.0 ，再除以2最后结果变成2.5


        // boolean 数据类型， 成立是true，不成立是false
        int x = 5;
        boolean greater = x > 3;            // true
        boolean completed = x == 1000;      //  ==是双向的，目的是比较左右是否相等. 成立是true，不成立是false
        boolean notCompleted = x != 1000;   //  ！= 是不等于，如果左右两边不相等就是True

        // string 的加法是一个直接加在另一个后面，两个粘在一起
        System.out.println("hello " + " world");   // 打印的结果是hello world

        // 任何东西 和string 相加都是string
  /*    int a = 3;
        int b = 4;                                运行结果
        System.out.println(a + " - " + b);         3 - 4
        System.out.println( 1 + 1 + "a");           2a
        System.out.println( "a" + 1 + 1 );          a11
  */
        // 运算有优先级 ， （） 是最高优先级最先算， 然后是乘法除法， 最后是加减法
        // 从左往右，从上往下，前面的运行完了才会运行后面的
        System.out.println(3.0 / 2 / 3); //   先算3.0/2 等于1.5  然后算1.5/3 最后结果是0.5
        System.out.println(3 / 2 / 4.0); //   先算3/2   等于1    然后算1/4.0 最后结果是0.25
    }
}
